Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #define signal_L r24 ; 25
- #define signal_H r25
- #define acc2 r22 ; 23, 8 msb part of the 24 bit signal
- #define acc1 r20 ; 21, 8 middle
- #define acc0 r18 ; 19, 8 lsb part of the 24 bit signal
- #define dds0 r26
- #define dds1 r28
- #define dds2 r30
- ;#define ZL r30
- ;#define ZH r31
- ;.def YL = 29
- ;.def YH = 28
- ;.def XL = 27
- ;.def XH = 26
- #define DDS_CONDITION 2
- #define DDS_CREG _SFR_IO_ADDR(PORTB)
- ; -------------------------------------------------
- .global SigGen
- .func SigGen
- SigGen:
- ;mov r31, signal_H ; setup Z pointer hi
- ;mov r30, signal_L ; setup Z pointer lo
- ldi r31,hi8(sine) ; setup Z pointer hi
- ldi r30,lo8(sine) ; sine wave
- ; clear accumulator
- ldi dds0, 0x00
- ldi dds1, 0x00
- loop_dds:
- add dds0, acc0
- adc dds1, acc1
- adc dds2, acc2
- lpm
- out _SFR_IO_ADDR(PORTD), r0
- sbis DDS_CREG, DDS_CONDITION
- rjmp loop_dds
- .endfunc
- .org 0x100
- sine:
- .byte 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae
- .byte 0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8
- .byte 0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5
- .byte 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff
- .byte 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7
- .byte 0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc
- .byte 0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3
- .byte 0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83
- .byte 0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51
- .byte 0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27
- .byte 0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a
- .byte 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00
- .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08
- .byte 0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23
- .byte 0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c
- .byte 0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement